﻿Imports System.IO
Imports ControleMatricula.Negocio
Imports BoletoNet

Public Class FrmAlunoCompleto

    Public Const strIncluirConfirmar As String = "Confirmar &Inclusão"
    Public Const strIncluir As String = "&Incluir"
    Public Const strAlterarConfirmar As String = "Confirmar &Alteração"
    Public Const strAlterar As String = "&Alterar"
    Dim db As New DataClassesDataContext()
    Dim IDEspecificaSelecionado As Integer
    Dim IDPagamentoSelecionado As Integer
    Dim AVista As Boolean
    Dim RowAluno As SPAlunoConsultarResult
    Dim RowResponsavel As SPResponsavelConsultarResult
    Dim RowEspecifica As SPAlunoEspecificaConsultarResult
    Dim RowPagamento As SPAlunoPagamentoConsultarResult
    'Dim oAssinaturaMemStream As New System.IO.MemoryStream()

    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)

    End Sub

    Private Sub btnConsultar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConsultar.Click

        Dim FrmAlunoConsultar As FrmAlunoConsultar
        FrmAlunoConsultar = New FrmAlunoConsultar
        FrmAlunoConsultar.Owner = Me
        FrmAlunoConsultar.ShowDialog()

        If Not IsNothing(FrmAlunoConsultar.RowAluno) Then

            txtMatricula.Enabled = False
            STMatricula.Enabled = False
            GroupBox2.Enabled = False
            GroupBox1.Enabled = False
            GroupBox3.Enabled = False
            GroupBox5.Enabled = False
            GroupBox4.Enabled = False
            btnIncluir.Enabled = True
            btnIncluir.Text = strIncluir
            btnAlterar.Text = strAlterar
            btnConsultar.Enabled = True
            btnAlterar.Enabled = False
            btnImprimirContrato.Enabled = False
            btnCancelarContrato.Enabled = False
            If LstEspecifica.Items.Count > 0 Then
                LstEspecifica.Items.Clear()
            End If
            If lstPagamento.Items.Count > 0 Then
                lstPagamento.Items.Clear()
            End If
            If lstCheque.Items.Count > 0 Then
                lstCheque.Items.Clear()
            End If
            txtVLTotalEspecifica.Text = "0,00"
            txtVLTotalPagamento.Text = "0,00"

            LimparCampos(Me)

            RowAluno = FrmAlunoConsultar.RowAluno
            RowResponsavel = FrmAlunoConsultar.RowResponsavel

            Dim RetornoEspecifca As List(Of SPAlunoEspecificaConsultarResult)
            RetornoEspecifca = db.SPAlunoEspecificaConsultar(RowAluno.IDAluno, 0).ToList()

            Dim RetornoPagamento As List(Of SPAlunoPagamentoConsultarResult)
            RetornoPagamento = db.SPAlunoPagamentoConsultar(RowAluno.IDAluno, 0).ToList()

            Dim CEPAluno As List(Of SPCEPConsultarResult)
            CEPAluno = db.SPCEPConsultar(RowAluno.CEP).ToList()

            Dim CEPResponsavel As List(Of SPCEPConsultarResult)
            CEPResponsavel = db.SPCEPConsultar(RowResponsavel.CEP).ToList()

            txtCDAluno.Text = RowAluno.IDAluno
            txtMatricula.Text = Mid(RowAluno.Matricula, 1, 1) & "/" & Mid(RowAluno.Matricula, 2, 4) & "-" & Mid(RowAluno.Matricula, 6, 5)
            STMatricula.Checked = IIf(RowAluno.STAtivo, True, False)
            txtNome.Text = RowAluno.Nome
            txtCPF.Text = Mid(RowAluno.CPF, 1, 3) & "." & Mid(RowAluno.CPF, 4, 3) & "." & Mid(RowAluno.CPF, 7, 3) & "-" & Mid(RowAluno.CPF, 10, 2)
            txtRG.Text = RowAluno.RG
            txtEmissor.Text = RowAluno.Emissor
            txtUFRG.Text = RowAluno.UFRG
            txtCEP.Text = RowAluno.CEP
            txtUF.Text = CEPAluno(0).UF
            txtLocalidade.Text = CEPAluno(0).Localidade
            txtBairro.Text = CEPAluno(0).Bairro
            txtLogradouro.Text = RowAluno.Logradouro
            txtComplLogradouro.Text = RowAluno.CompLogradouro
            txtNumero.Text = RowAluno.NumeroLogradouro
            txtDDDTel.Text = RowAluno.DDDTelefone
            txtTel.Text = RowAluno.Telefone
            txtDDDCel.Text = RowAluno.DDDCelular
            txtCel.Text = RowAluno.Celular
            txtEmail.Text = RowAluno.Email
            DTNascimento.Text = RowAluno.DTNascimento.Value
            txtObs.Text = RowAluno.Observacao
            cmbCOC.SelectedIndex = IIf(RowAluno.STCOC = True, 0, 1)

            If RowAluno.STCOC = True Then
                Dim TipoCurso As Integer
                TipoCurso = RowAluno.TPCurso
                cmbCursoCOC.SelectedIndex = TipoCurso
                lblEscola.Text = "Qual Escola?"
                cmbCursoCOC.Visible = True
                lblEscola.Visible = True
                txtEscola.Visible = False
            Else
                cmbCursoCOC.SelectedIndex = -1
            End If

            If RowAluno.STCOC = False Then
                lblEscola.Text = "Está estudando a quantos semestres?"
                txtEscola.Text = RowAluno.NomeEscola
                txtEscola.Visible = True
                lblEscola.Visible = True
                cmbCursoCOC.Visible = False
            Else
                txtEscola.Text = ""
            End If

            txtRespNome.Text = RowResponsavel.Nome
            txtRespCPF.Text = Mid(RowResponsavel.CPF, 1, 3) & "." & Mid(RowResponsavel.CPF, 4, 3) & "." & Mid(RowResponsavel.CPF, 7, 3) & "-" & Mid(RowResponsavel.CPF, 10, 2)
            txtRespRG.Text = RowResponsavel.RG
            txtRespEmissor.Text = RowResponsavel.Emissor
            txtRespUFRG.Text = RowResponsavel.UFRG
            txtRespCEP.Text = RowResponsavel.CEP
            txtRespUF.Text = CEPResponsavel(0).UF
            txtRespLocalidade.Text = CEPResponsavel(0).Localidade
            txtRespBairro.Text = CEPResponsavel(0).Bairro
            txtRespLogradouro.Text = RowResponsavel.Logradouro
            txtRespComplLogradouro.Text = RowResponsavel.CompLogradouro
            txtRespNumero.Text = RowResponsavel.NumeroLogradouro
            txtRespDDDTel.Text = RowResponsavel.DDDTelefone
            txtRespTel.Text = RowResponsavel.Telefone
            txtRespDDDCel.Text = RowResponsavel.DDDCelular
            txtRespCel.Text = RowResponsavel.Celular
            txtRespEmail.Text = RowResponsavel.Email
            DTNascimentoResp.Text = RowResponsavel.DTNascimento


            For i = 0 To RetornoEspecifca.Count - 1
                RowEspecifica = RetornoEspecifca(i)

                Dim ListEspecifica As List(Of SPEspecificaConsultarResult)
                ListEspecifica = db.SPEspecificaConsultar(RowEspecifica.IDEspecifica, "").ToList()

                Dim dataItem As ListViewItem
                dataItem = New ListViewItem()

                Dim itemID As ListViewItem.ListViewSubItem
                itemID = New ListViewItem.ListViewSubItem()
                itemID.Text = RowEspecifica.ID


                Dim itemDE As ListViewItem.ListViewSubItem
                itemDE = New ListViewItem.ListViewSubItem()
                itemDE.Text = ListEspecifica(0).DEEspecifica

                Dim itemDTInicio As ListViewItem.ListViewSubItem
                itemDTInicio = New ListViewItem.ListViewSubItem()
                itemDTInicio.Text = IIf(IsNothing(RowEspecifica.DTInicioAula), Date.Now(), RowEspecifica.DTInicioAula)

                Dim itemDTFim As ListViewItem.ListViewSubItem
                itemDTFim = New ListViewItem.ListViewSubItem()
                itemDTFim.Text = IIf(IsNothing(RowEspecifica.DTFimAula), Date.Now(), RowEspecifica.DTFimAula)

                Dim itemST As ListViewItem.ListViewSubItem
                itemST = New ListViewItem.ListViewSubItem()
                itemST.Text = String.Empty

                Dim itemVL As ListViewItem.ListViewSubItem
                itemVL = New ListViewItem.ListViewSubItem()
                itemVL.Text = RowEspecifica.Valor

                dataItem.SubItems.Add(itemID)
                dataItem.SubItems.Add(itemDE)
                dataItem.SubItems.Add(itemDTInicio)
                dataItem.SubItems.Add(itemDTFim)
                dataItem.SubItems.Add(itemST)
                dataItem.SubItems.Add(itemVL)

                LstEspecifica.Items.Add(dataItem)
            Next

            For x = 0 To RetornoPagamento.Count - 1
                RowPagamento = RetornoPagamento(x)

                Dim ListPagamento As List(Of SPPagamentoConsultarResult)
                ListPagamento = db.SPPagamentoConsultar(RowPagamento.IDPagamento, "").ToList()

                If ListPagamento(0).STBoleto Then
                    btnImprimeBoleto.Enabled = True
                Else
                    btnImprimeBoleto.Enabled = False
                End If

                Dim dataItem As ListViewItem
                dataItem = New ListViewItem()

                Dim itemNRParcela As ListViewItem.ListViewSubItem
                itemNRParcela = New ListViewItem.ListViewSubItem()
                itemNRParcela.Text = RowPagamento.NRParcela

                Dim itemDE As ListViewItem.ListViewSubItem
                itemDE = New ListViewItem.ListViewSubItem()
                itemDE.Text = ListPagamento(0).DEPagamento

                Dim itemDT As ListViewItem.ListViewSubItem
                itemDT = New ListViewItem.ListViewSubItem()
                itemDT.Text = RowPagamento.DTParcela

                Dim itemVL As ListViewItem.ListViewSubItem
                itemVL = New ListViewItem.ListViewSubItem()
                itemVL.Text = RowPagamento.VLParcela

                Dim itemSTRec As ListViewItem.ListViewSubItem
                itemSTRec = New ListViewItem.ListViewSubItem()
                itemSTRec.Text = IIf(RowPagamento.STRecebido = True, "X", "")

                dataItem.SubItems.Add(itemNRParcela)
                dataItem.SubItems.Add(itemDE)
                dataItem.SubItems.Add(itemDT)
                dataItem.SubItems.Add(itemVL)
                dataItem.SubItems.Add(itemSTRec)

                lstPagamento.Items.Add(dataItem)

                If RowPagamento.NRCheque <> "" Then

                    Dim dataCheque As ListViewItem
                    dataCheque = New ListViewItem()

                    Dim itemBanco As ListViewItem.ListViewSubItem
                    itemBanco = New ListViewItem.ListViewSubItem()
                    itemBanco.Text = RowPagamento.Banco

                    Dim itemAgencia As ListViewItem.ListViewSubItem
                    itemAgencia = New ListViewItem.ListViewSubItem()
                    itemAgencia.Text = RowPagamento.Agencia

                    Dim itemConta As ListViewItem.ListViewSubItem
                    itemConta = New ListViewItem.ListViewSubItem()
                    itemConta.Text = RowPagamento.Conta

                    Dim itemNRCheque As ListViewItem.ListViewSubItem
                    itemNRCheque = New ListViewItem.ListViewSubItem()
                    itemNRCheque.Text = RowPagamento.NRCheque

                    dataCheque.SubItems.Add(itemBanco)
                    dataCheque.SubItems.Add(itemAgencia)
                    dataCheque.SubItems.Add(itemConta)
                    dataCheque.SubItems.Add(itemNRCheque)

                    lstCheque.Items.Add(dataCheque)

                End If

            Next

            Dim VLTotalEspecifica As Decimal
            For i = 0 To LstEspecifica.Items.Count - 1
                VLTotalEspecifica += Convert.ToDecimal(LstEspecifica.Items(i).SubItems(6).Text)
            Next
            txtVLTotalEspecifica.Text = VLTotalEspecifica

            Dim VLTotalPagamento As Decimal
            For i = 0 To lstPagamento.Items.Count - 1
                VLTotalPagamento += Convert.ToDecimal(lstPagamento.Items(i).SubItems(4).Text)
            Next
            txtVLTotalPagamento.Text = VLTotalPagamento

            txtVLPagamento.Text = "0,00"

            btnAlterar.Enabled = True
            btnCancelar.Enabled = True
            btnImprimirContrato.Enabled = True
            btnCancelarContrato.Enabled = True

        End If


    End Sub

    Private Sub FrmAlunoCompleto_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        txtMatricula.Enabled = False
        STMatricula.Enabled = False
        GroupBox2.Enabled = False
        GroupBox1.Enabled = False
        GroupBox3.Enabled = False
        GroupBox5.Enabled = False
        GroupBox4.Enabled = False
        GroupBox8.Enabled = False
        btnIncluir.Enabled = True
        btnConsultar.Enabled = True
        btnAlterar.Enabled = False
        btnImprimirContrato.Enabled = False
        btnCancelarContrato.Enabled = False
        lstCheque.Enabled = False
        LstEspecifica.Enabled = False

        MontarComboEspecifica(cmbEspecifica)
        cmbEspecifica.SelectedIndex = -1
        MontarComboPagamento(cmbPagamento)
        cmbPagamento.SelectedIndex = -1



    End Sub

    Public Function ValidarParcelas(ByRef Pagamento As Integer)

        Dim RetornoParcela As New List(Of SPPagamentoConsultarResult)
        Dim TipoPagamento As String
        TipoPagamento = cmbPagamento.Text
        RetornoParcela = db.SPPagamentoConsultar(0, TipoPagamento).ToList()

        If RetornoParcela(0).STCheque = False Then
            lstCheque.Enabled = False
            GroupBox8.Enabled = False
        Else
            lstCheque.Enabled = True
            GroupBox8.Enabled = True
            txtBanco.Enabled = True
            txtAgencia.Enabled = True
            txtConta.Enabled = True
            txtNrCheque.Enabled = True
            btnAdicionarCheque.Enabled = True
        End If



        If RetornoParcela(0).STAVista = True Then
            cmbParcelas.Items.Insert(0, "À Vista")
            cmbDiaPagamento.Enabled = False
            cmbMesPagamento.Enabled = False
            AVista = True
        ElseIf RetornoParcela(0).STPrazo = True Then
            cmbParcelas.Items.Insert(0, "1x")
            cmbParcelas.Items.Insert(1, "2x")
            cmbParcelas.Items.Insert(2, "3x")
            cmbParcelas.Items.Insert(3, "4x")
            cmbParcelas.Items.Insert(4, "5x")
            cmbParcelas.Items.Insert(5, "6x")
            cmbParcelas.Items.Insert(6, "7x")
            cmbParcelas.Items.Insert(7, "8x")
            cmbParcelas.Items.Insert(8, "9x")
            cmbParcelas.Items.Insert(9, "10x")
            cmbParcelas.Items.Insert(10, "11x")
            cmbParcelas.Items.Insert(11, "12x")
            cmbDiaPagamento.Enabled = True
            cmbMesPagamento.Enabled = True
            AVista = False
        End If


    End Function


    Private Sub btnIncluir_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnIncluir.Click

        If btnIncluir.Text = strIncluir Then
            txtMatricula.Enabled = False
            STMatricula.Enabled = True
            GroupBox2.Enabled = True
            GroupBox1.Enabled = True
            GroupBox3.Enabled = True
            GroupBox5.Enabled = True
            GroupBox4.Enabled = True
            LstEspecifica.Enabled = True

            btnIncluir.Text = strIncluirConfirmar

            btnConsultar.Enabled = False
            btnAlterar.Enabled = False
            btnImprimirContrato.Enabled = False
            btnCancelarContrato.Enabled = False
            txtUF.Enabled = False
            txtLocalidade.Enabled = False
            txtBairro.Enabled = False
            txtRespUF.Enabled = False
            txtRespLocalidade.Enabled = False
            txtRespBairro.Enabled = False

            If txtMatricula.Text <> "" Then
                If MsgBox("Deseja aproveitar os dados do aluno?", MsgBoxStyle.Exclamation + MsgBoxStyle.YesNo, "Sistema Especifica") = MsgBoxResult.No Then
                    LimparCampos(Me)
                    LstEspecifica.Items.Clear()
                    txtVLTotalEspecifica.Text = "0,00"
                End If
            Else
                LimparCampos(Me)
                LstEspecifica.Items.Clear()
                txtVLTotalEspecifica.Text = "0,00"
            End If

            lstCheque.Items.Clear()
            lstPagamento.Items.Clear()
            txtVLTotalPagamento.Text = "0,00"

            STMatricula.Checked = True

        Else
            Dim Matricula As Integer
            Dim Semestre As Integer
            Dim STCOC As Boolean
            Dim DataMatricula As Date
            Dim ID As Integer
            Dim DataNascimento As Date
            Dim DataNascimentoResponsavel As Date

            If txtRespNome.Text = "" Then
                MsgBox("Preenchimento do nome do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespNome.Focus()
                Exit Sub
            End If

            If txtRespCPF.Text = "" Then
                MsgBox("Preenchimento do CPF do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespCPF.Focus()
                Exit Sub
            End If

            If txtRespRG.Text = "" Then
                MsgBox("Preenchimento do RG do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespRG.Focus()
                Exit Sub
            End If

            If txtRespEmissor.Text = "" Then
                MsgBox("Preenchimento do Emissor do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespEmissor.Focus()
                Exit Sub
            End If

            If txtRespUFRG.Text = "" Then
                MsgBox("Preenchimento da UF do RG do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespUFRG.Focus()
                Exit Sub
            End If

            If txtRespCEP.Text = "" Then
                MsgBox("Preenchimento do CEP do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespCEP.Focus()
                Exit Sub
            End If

            If txtRespLogradouro.Text = "" Then
                MsgBox("Preenchimento do Logradouro do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespLogradouro.Focus()
                Exit Sub
            End If

            If txtRespComplLogradouro.Text = "" Then
                MsgBox("Preenchimento do Complemento Logradouro do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespComplLogradouro.Focus()
                Exit Sub
            End If

            If txtRespNumero.Text = "" Then
                MsgBox("Preenchimento do Número do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespNumero.Focus()
                Exit Sub
            End If

            If ((txtRespDDDTel.Text = "" AndAlso txtRespTel.Text = "") And (txtRespDDDCel.Text = "" AndAlso txtRespCel.Text = "")) Then
                MsgBox("É obrigatório o preenchimento de pelo menos um telefone!", MsgBoxStyle.Information)
                txtRespTel.Focus()
                Exit Sub
            End If

            If (DTNascimentoResp.Text = "" Or DTNascimentoResp.Text = Date.Now.Date) Then
                MsgBox("Preenchimento da Data de Nascimento do responsável é obrigatório!", MsgBoxStyle.Information)
                DTNascimentoResp.Focus()
                Exit Sub
            End If

            If txtNome.Text = "" Then
                MsgBox("Preenchimento do Nome do Aluno é obrigatório!", MsgBoxStyle.Information)
                txtNome.Focus()
                Exit Sub
            End If

            If (DTNascimento.Text = "" Or DTNascimento.Text = Date.Now.Date) Then
                MsgBox("Preenchimento da Data de Nascimento do Aluno é obrigatório!", MsgBoxStyle.Information)
                DTNascimento.Focus()
                Exit Sub
            End If

            If LstEspecifica.Items.Count = 0 Then
                MsgBox("É obrigatório o lançamento de pelo menos uma Específica!", MsgBoxStyle.Information)
                'TabControl1.SelectTab(2)
                Exit Sub
            End If

            If lstPagamento.Items.Count = 0 Then
                MsgBox("É obrigatório o lançamento de pelo menos uma forma de Pagamento!", MsgBoxStyle.Information)
                'TabControl1.SelectTab(3)
                Exit Sub
            End If

            If LstEspecifica.Items.Count = 0 Then
                MsgBox("É obrigatório o lançamento de pelo menos uma Específica!", MsgBoxStyle.Information)
                'TabControl1.SelectTab(2)
                Exit Sub
            End If

            If txtVLTotalEspecifica.Text <> txtVLTotalPagamento.Text Then
                MsgBox("O valor total das parcelas está diferente do valor total das específicas!", MsgBoxStyle.Information)
                cmbPagamento.Focus()
                Exit Sub
            End If

            If lstPagamento.Items.Count > 0 Then
                For i = 0 To lstPagamento.Items.Count - 1
                    Dim RetornoParcela As New List(Of SPPagamentoConsultarResult)
                    Dim TipoPagamento As String
                    TipoPagamento = lstPagamento.Items(i).SubItems(2).Text
                    RetornoParcela = db.SPPagamentoConsultar(0, TipoPagamento).ToList()

                    If (RetornoParcela(0).STCheque = True AndAlso lstCheque.Items.Count = 0) Then
                        MsgBox("É obrigatório o lançamento dos dados dos cheques lançados!", MsgBoxStyle.Information)
                        'TabControl1.SelectTab(4)
                        Exit Sub
                    End If
                Next

                Dim QuantidadeCheque As Integer = 0

                For i = 0 To lstPagamento.Items.Count - 1

                    If lstPagamento.Items(i).SubItems(2).Text = "Cheque" Then
                        QuantidadeCheque = QuantidadeCheque + 1
                    End If

                Next

                Dim ChequePendente As Integer = 0
                ChequePendente = QuantidadeCheque - lstCheque.Items.Count

                If ChequePendente <> 0 Then
                    MsgBox("Não foram informados todos os dados dos cheques lançados no pagamento!", MsgBoxStyle.Information)
                    GroupBox8.Enabled = True
                    LimparCampos(GroupBox8)
                    'TabControl1.SelectTab(4)
                    Exit Sub
                End If
            End If

            DataNascimento = CDate(DTNascimento.Text)
            DataNascimentoResponsavel = CDate(DTNascimentoResp.Text)

            If Date.Now.Month <= 6 Then
                Semestre = 1
            Else
                Semestre = 2
            End If

            Dim TabelaAluno As New List(Of SPAlunoConsultarResult)
            TabelaAluno = db.SPAlunoConsultar(0, 0, "", "", "", "", 0, "", 0, 0).ToList()

            ID = TabelaAluno(0).MAXID + 1

            Matricula = Semestre & Date.Now.Year & ID

            DataMatricula = Date.Now.Date

            If cmbCOC.Text = "Sim" Then
                STCOC = True
            ElseIf cmbCOC.Text = "Não" Then
                STCOC = False
            End If

            If txtRG.Text = "" Then
                txtRG.Text = "0"
            End If
            If txtDDDTel.Text = "" Then
                txtDDDTel.Text = "0"
            End If
            If txtTel.Text = "" Then
                txtTel.Text = "0"
            End If
            If txtDDDCel.Text = "" Then
                txtDDDCel.Text = "0"
            End If
            If txtCel.Text = "" Then
                txtCel.Text = "0"
            End If
            If txtRespDDDTel.Text = "" Then
                txtRespDDDTel.Text = "0"
            End If
            If txtRespTel.Text = "" Then
                txtRespTel.Text = "0"
            End If
            If txtRespDDDCel.Text = "" Then
                txtRespDDDCel.Text = "0"
            End If
            If txtRespTel.Text = "" Then
                txtRespTel.Text = "0"
            End If

            db.SPAlunoIncluir(Convert.ToInt32(ID), _
                              Convert.ToInt32(Matricula), _
                              txtNome.Text, _
                              txtCPF.Text.Replace("-", "").Replace("/", "").Replace(".", ""), _
                              txtRG.Text, _
                              txtEmissor.Text, _
                              txtUFRG.Text, _
                              DataNascimento, _
                              Convert.ToInt32(txtCEP.Text), _
                              txtLogradouro.Text, _
                              txtComplLogradouro.Text, _
                              txtNumero.Text, _
                              txtDDDTel.Text, _
                              txtTel.Text, _
                              txtDDDCel.Text, _
                              txtCel.Text, _
                              txtEmail.Text, _
                              Convert.ToBoolean(STCOC), _
                              Convert.ToInt32(cmbCursoCOC.SelectedIndex), _
                              txtEscola.Text, _
                              txtObs.Text, _
                              Convert.ToBoolean(IIf(STMatricula.Checked = True, True, False)), _
                              GlobalLogin, _
                              Convert.ToDateTime(DataMatricula), _
                              0, _
                              Convert.ToDateTime(DataMatricula))

            db.SPResponsavelIncluir(Convert.ToInt32(ID), _
                                    Convert.ToInt32(Matricula), _
                                    txtRespNome.Text, _
                                    txtRespCPF.Text.Replace("-", "").Replace("/", "").Replace(".", ""), _
                                    txtRespRG.Text, _
                                    txtRespEmissor.Text, _
                                    txtRespUFRG.Text, _
                                    DataNascimentoResponsavel, _
                                    Convert.ToInt32(txtRespCEP.Text), _
                                    txtRespLogradouro.Text, _
                                    txtRespComplLogradouro.Text, _
                                    txtRespNumero.Text, _
                                    txtRespDDDTel.Text, _
                                    txtRespTel.Text, _
                                    txtRespDDDCel.Text, _
                                    txtRespCel.Text, _
                                    txtRespEmail.Text)

            For i = 0 To LstEspecifica.Items.Count - 1

                Dim IDEspecifica As Integer
                Dim DTInicio As Date
                Dim DTFim As Date
                Dim TabelaEspecifica As New List(Of SPEspecificaConsultarResult)
                TabelaEspecifica = db.SPEspecificaConsultar(0, LstEspecifica.Items(i).SubItems(2).Text).ToList()
                IDEspecifica = TabelaEspecifica(0).IDEspecifica
                DTInicio = TabelaEspecifica(0).DTInicioAula
                DTFim = TabelaEspecifica(0).DTFimAula

                db.SPAlunoEspecificaIncluir(Convert.ToInt32(ID), _
                                            Convert.ToInt32(Matricula), _
                                            Convert.ToInt32(LstEspecifica.Items(i).SubItems(1).Text), _
                                            Convert.ToInt32(IDEspecifica), _
                                            Convert.ToDecimal(LstEspecifica.Items(i).SubItems(6).Text), _
                                            DTInicio,
                                            DTFim)

            Next

            For x = 0 To lstPagamento.Items.Count - 1

                Dim IDPagamento As Integer
                Dim STRecebido As Boolean
                Dim TabelaPagamento As New List(Of SPPagamentoConsultarResult)
                TabelaPagamento = db.SPPagamentoConsultar(0, lstPagamento.Items(x).SubItems(2).Text).ToList()
                IDPagamento = TabelaPagamento(0).IDPagamento
                STRecebido = IIf(TabelaPagamento(0).STAVista, True, False)

                If TabelaPagamento(0).STBoleto Then
                    btnImprimeBoleto.Enabled = True
                Else
                    btnImprimeBoleto.Enabled = False
                End If

                Dim Banco As String
                Dim Agencia As String
                Dim Conta As String
                Dim NRCheque As String

                If lstPagamento.Items(x).SubItems(2).Text = "Cheque" AndAlso lstPagamento.Items(0).SubItems(2).Text = "Dinheiro" Then
                    Banco = lstCheque.Items(x - 1).SubItems(1).Text
                    Agencia = lstCheque.Items(x - 1).SubItems(2).Text
                    Conta = lstCheque.Items(x - 1).SubItems(3).Text
                    NRCheque = lstCheque.Items(x - 1).SubItems(4).Text
                ElseIf lstPagamento.Items(x).SubItems(2).Text = "Cheque" Then
                    Banco = lstCheque.Items(x).SubItems(1).Text
                    Agencia = lstCheque.Items(x).SubItems(2).Text
                    Conta = lstCheque.Items(x).SubItems(3).Text
                    NRCheque = lstCheque.Items(x).SubItems(4).Text
                Else
                    Banco = ""
                    Agencia = ""
                    Conta = ""
                    NRCheque = ""
                End If

                db.SPAlunoPagamentoIncluir(Convert.ToInt32(ID), _
                                           Convert.ToInt32(Matricula), _
                                           Convert.ToInt32(lstPagamento.Items(x).SubItems(1).Text), _
                                           Convert.ToInt32(IDPagamento), _
                                           Convert.ToDateTime(lstPagamento.Items(x).SubItems(3).Text), _
                                           Convert.ToDecimal(lstPagamento.Items(x).SubItems(4).Text), _
                                           Convert.ToString(Banco), _
                                           Convert.ToString(Agencia), _
                                           Convert.ToString(Conta), _
                                           Convert.ToString(NRCheque), _
                                           STRecebido)

            Next

            Dim AlunoIncluido As List(Of SPAlunoConsultarResult)
            AlunoIncluido = db.SPAlunoConsultar(Convert.ToInt32(ID), 0, "", _
                                                "", _
                                                "", "", 0, "", 0, 0).ToList()

            txtCDAluno.Text = AlunoIncluido(0).IDAluno
            txtMatricula.Text = Mid(AlunoIncluido(0).Matricula, 1, 1) & "/" & Mid(AlunoIncluido(0).Matricula, 2, 4) & "-" & Mid(AlunoIncluido(0).Matricula, 6, 5)

            txtMatricula.Enabled = False
            STMatricula.Enabled = False
            GroupBox2.Enabled = False
            GroupBox1.Enabled = False
            GroupBox3.Enabled = False
            GroupBox5.Enabled = False
            GroupBox4.Enabled = False
            LstEspecifica.Enabled = False

            btnIncluir.Text = strIncluir

            btnConsultar.Enabled = True
            btnAlterar.Enabled = True
            btnImprimirContrato.Enabled = True
            btnCancelarContrato.Enabled = True


            MsgBox("Aluno incluído com sucesso!", MsgBoxStyle.Information)

        End If

    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click

        txtMatricula.Enabled = False
        STMatricula.Enabled = False
        GroupBox2.Enabled = False
        GroupBox1.Enabled = False
        GroupBox3.Enabled = False
        GroupBox5.Enabled = False
        GroupBox4.Enabled = False
        btnIncluir.Enabled = True
        btnIncluir.Text = strIncluir
        btnAlterar.Text = strAlterar
        btnConsultar.Enabled = True
        btnAlterar.Enabled = False
        btnImprimirContrato.Enabled = False
        btnCancelarContrato.Enabled = False
        If LstEspecifica.Items.Count > 0 Then
            LstEspecifica.Items.Clear()
        End If
        If lstPagamento.Items.Count > 0 Then
            lstPagamento.Items.Clear()
        End If
        If lstCheque.Items.Count > 0 Then
            lstCheque.Items.Clear()
        End If
        txtVLTotalEspecifica.Text = "0,00"
        txtVLTotalPagamento.Text = "0,00"

        LimparCampos(Me)

    End Sub

    Private Sub cmbPagamento_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbPagamento.SelectionChangeCommitted


        If cmbPagamento.Text <> "" Then
            Dim IDPagamento As Integer
            IDPagamento = cmbPagamento.SelectedValue
            cmbParcelas.Items.Clear()
            ValidarParcelas(IDPagamento)
        End If

    End Sub

    Private Sub cmbPagamento_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles cmbPagamento.Validating

        If cmbPagamento.Text <> "" Then
            Dim IDPagamento As Integer
            IDPagamento = cmbPagamento.SelectedValue
            cmbParcelas.Items.Clear()
            ValidarParcelas(IDPagamento)
        End If

    End Sub

    Private Sub txtVLEspecifica_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtVLEspecifica.KeyPress

        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If

    End Sub

    Private Sub txtVLEspecifica_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtVLEspecifica.Validating

        If IsNumeric(txtVLEspecifica.Text) Then
            Dim ValorEspecifica As Decimal
            ValorEspecifica = txtVLEspecifica.Text
            txtVLEspecifica.Text = FormatNumber(ValorEspecifica, 2)
        End If

    End Sub

    Private Sub txtVLPagamento_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtVLPagamento.KeyPress

        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If

    End Sub

    Private Sub txtVLPagamento_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtVLPagamento.Validating

        If IsNumeric(txtVLPagamento.Text) Then
            Dim ValorPagamento As Decimal
            ValorPagamento = txtVLPagamento.Text
            txtVLPagamento.Text = FormatNumber(ValorPagamento, 2)
        End If

    End Sub

    Private Sub btnAdicionarEspecifica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdicionarEspecifica.Click

        Dim ListEspecifica As New ListViewItem
        Dim EspecificaSelecionada As String
        Dim MaxID As Integer = 0
        Dim ValorEspecifica As Decimal
        Dim VLTotalEspecifica As Decimal
        EspecificaSelecionada = cmbEspecifica.Text
        ValorEspecifica = Convert.ToDecimal(txtVLEspecifica.Text)

        Dim TabelaEspecifica As New List(Of SPEspecificaConsultarResult)
        TabelaEspecifica = db.SPEspecificaConsultar(CInt(cmbEspecifica.SelectedValue), String.Empty).ToList()

        If ((cmbEspecifica.Enabled = False And cmbEspecifica.Text <> "") AndAlso (txtVLEspecifica.Enabled = False And txtVLEspecifica.Text <> "")) Then
            cmbEspecifica.Enabled = True
            txtVLEspecifica.Enabled = True
        End If

        If cmbEspecifica.Text = "" Then
            MsgBox("É obrigatório selecionar a Específica!", MsgBoxStyle.Information)
            Exit Sub
        End If

        If txtVLEspecifica.Text = "" Then
            MsgBox("É obrigatório que seja informado o valor da Específica!", MsgBoxStyle.Information)
            Exit Sub
        End If

        If (LstEspecifica.Items.Count > 0 AndAlso IDEspecificaSelecionado > 0) Then


            For i = 0 To LstEspecifica.Items.Count - 1
                If IDEspecificaSelecionado = LstEspecifica.Items(i).SubItems(1).Text Then

                    Dim obj As ListViewItem
                    obj = LstEspecifica.Items(i)

                    obj.SubItems(2).Text = EspecificaSelecionada
                    obj.SubItems(3).Text = TabelaEspecifica(0).DTInicioAula
                    obj.SubItems(4).Text = TabelaEspecifica(0).DTFimAula
                    obj.SubItems(5).Text = String.Empty
                    obj.SubItems(6).Text = (ValorEspecifica)


                    'Dim data As Date
                    'data = New Date(Date.Now.Year, , )

                End If
            Next
            IDEspecificaSelecionado = 0

        Else

            MaxID = LstEspecifica.Items.Count + 1

            For i = 0 To LstEspecifica.Items.Count - 1
                If MaxID = LstEspecifica.Items(i).SubItems(1).Text Then
                    MaxID = MaxID + 1
                End If
            Next

            ListEspecifica.SubItems.Add(MaxID)
            ListEspecifica.SubItems.Add(EspecificaSelecionada)
            ListEspecifica.SubItems.Add(TabelaEspecifica(0).DTInicioAula)
            ListEspecifica.SubItems.Add(TabelaEspecifica(0).DTFimAula)
            ListEspecifica.SubItems.Add(String.Empty)
            ListEspecifica.SubItems.Add(ValorEspecifica)

            LstEspecifica.Items.Add(ListEspecifica)



        End If

        For i = 0 To LstEspecifica.Items.Count - 1
            VLTotalEspecifica += Convert.ToDecimal(LstEspecifica.Items(i).SubItems(6).Text)
        Next

        If LstEspecifica.Items.Count > 0 Then
            LstEspecifica.Items(LstEspecifica.Items.Count - 1).EnsureVisible()
        End If

        cmbEspecifica.SelectedIndex = -1
        txtVLEspecifica.Text = "0,00"
        txtVLTotalEspecifica.Text = VLTotalEspecifica

    End Sub

    Private Sub btnAlterarEspecifica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterarEspecifica.Click

        If (Me.LstEspecifica.SelectedItems.Count = 1) Then
            Me.cmbEspecifica.Enabled = True
            Me.txtVLEspecifica.Enabled = True
        End If


    End Sub

    Private Sub LstEspecifica_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles LstEspecifica.SelectedIndexChanged

        If (LstEspecifica.SelectedItems.Count >= 0) Then
            Dim i As Integer
            For i = 0 To LstEspecifica.SelectedItems.Count - 1
                If (LstEspecifica.SelectedItems(i).Text <> "Nothing!") Then
                    NavegarItemLV(CInt(LstEspecifica.SelectedItems(i).SubItems(1).Text))
                End If
            Next
        End If

    End Sub
    Sub NavegarItemLV(ByVal ItemEspecifica As Integer)
        Try

            Dim Selected As ListViewItem = LstEspecifica.Items(Convert.ToInt32(ItemEspecifica - 1))

            If (Selected IsNot Nothing AndAlso Selected.SubItems.Count > 0) Then
                Me.cmbEspecifica.Text = Selected.SubItems(2).Text
                Me.txtVLEspecifica.Text = Selected.SubItems(6).Text
                IDEspecificaSelecionado = Selected.SubItems(1).Text
            End If

            Me.cmbEspecifica.Enabled = False
            Me.txtVLEspecifica.Enabled = False


        Catch Er As Exception
            MsgBox(Er.Message, MsgBoxStyle.Critical, "Específica")
        Finally
            Me.Cursor = System.Windows.Forms.Cursors.Default
        End Try

    End Sub

    Sub NavegarCheque(ByVal ItemCheque As Integer)
        Try

            Dim Selected As ListViewItem = lstCheque.Items(Convert.ToInt32(ItemCheque))

            If (Selected IsNot Nothing AndAlso Selected.SubItems.Count > 0) Then
                txtBanco.Text = Selected.SubItems(1).Text
                txtAgencia.Text = Selected.SubItems(2).Text
                txtConta.Text = Selected.SubItems(3).Text
                txtNrCheque.Text = Selected.SubItems(4).Text
            End If

            txtBanco.Enabled = False
            txtAgencia.Enabled = False
            txtConta.Enabled = False
            txtNrCheque.Enabled = False


        Catch Er As Exception
            MsgBox(Er.Message, MsgBoxStyle.Critical, "Específica")
        Finally
            Me.Cursor = System.Windows.Forms.Cursors.Default
        End Try

    End Sub



    Private Sub btnDeletarEspecifica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeletarEspecifica.Click

        Dim VLTotalEspecifica As Decimal
        If LstEspecifica.SelectedItems.Count > 0 Then
            LstEspecifica.SelectedItems.Item(0).Remove()
        End If

        For i = 0 To LstEspecifica.Items.Count - 1
            VLTotalEspecifica += Convert.ToDecimal(LstEspecifica.Items(i).SubItems(6).Text)
        Next

        Me.cmbEspecifica.Enabled = True
        Me.txtVLEspecifica.Enabled = True

        cmbEspecifica.SelectedIndex = -1
        txtVLEspecifica.Text = "0,00"
        IDEspecificaSelecionado = 0
        txtVLTotalEspecifica.Text = VLTotalEspecifica

    End Sub

    Private Sub btnAdicionarPagamento_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdicionarPagamento.Click

        Dim ListPagamento As New ListViewItem
        Dim PagamentoSelecionada As String
        Dim MaxID As Integer = 0
        Dim ValorPagamento As Decimal
        Dim ParcelaSelecionada As Integer
        Dim DiaSelecionado As Integer
        Dim MesSelecionado As Integer
        Dim VLTotalPagamento As Decimal
        PagamentoSelecionada = cmbPagamento.Text
        ValorPagamento = Convert.ToDecimal(txtVLPagamento.Text)
        ParcelaSelecionada = cmbParcelas.SelectedIndex + 1
        'VLTotalPagamento = Convert.ToDecimal(txtVLTotalPagamento.Text)

        If cmbDiaPagamento.Text = "" AndAlso cmbParcelas.Text <> "À Vista" Then
            MsgBox("É obrigatório a seleção do dia do pagamento!", MsgBoxStyle.Information)
            Exit Sub
        End If

        If cmbPagamento.Text = "" Then
            MsgBox("É obrigatório a seleção do pagamento!", MsgBoxStyle.Information)
            Exit Sub
        End If

        If cmbParcelas.Text = "" Then
            MsgBox("É obrigatório a seleção da quantidade de parcelas do pagamento!", MsgBoxStyle.Information)
            Exit Sub
        End If

        If cmbMesPagamento.Text = "" AndAlso cmbParcelas.Text <> "À Vista" Then
            MsgBox("É obrigatório a seleção do mês do pagamento!", MsgBoxStyle.Information)
            Exit Sub
        End If

        If Not AVista = True Then
            DiaSelecionado = cmbDiaPagamento.Text
            MesSelecionado = cmbMesPagamento.SelectedIndex + 1
        End If

        If (cmbPagamento.Enabled = False And cmbPagamento.Text <> "") Then
            cmbPagamento.Enabled = True
        End If
        If (txtVLPagamento.Enabled = False And txtVLPagamento.Text <> "") Then
            txtVLPagamento.Enabled = True
        End If
        If (cmbParcelas.Enabled = False And cmbParcelas.Text <> "") Then
            cmbParcelas.Enabled = True
        End If
        If (cmbDiaPagamento.Enabled = False And cmbDiaPagamento.Text <> "") Then
            cmbDiaPagamento.Enabled = True
        End If
        If (cmbMesPagamento.Enabled = False And cmbMesPagamento.Text <> "") Then
            cmbMesPagamento.Enabled = True
        End If

        If (lstPagamento.Items.Count > 0 AndAlso IDPagamentoSelecionado > 0) Then

            Dim DataSelecionada As Date
            If AVista = True Then
                DataSelecionada = New Date(Date.Now.Year, Date.Now.Month, Date.Now.Day)
            Else
                DataSelecionada = New Date(Date.Now.Year, MesSelecionado, DiaSelecionado)
            End If

            For i = 0 To lstPagamento.Items.Count - 1
                If IDPagamentoSelecionado = lstPagamento.Items(i).SubItems(1).Text Then

                    Dim obj As ListViewItem
                    obj = LstEspecifica.Items(i)

                    obj.SubItems(2).Text = PagamentoSelecionada
                    obj.SubItems(3).Text = DataSelecionada
                    obj.SubItems(4).Text = ValorPagamento

                End If
            Next
            IDPagamentoSelecionado = 0

        Else

            For x = 0 To cmbParcelas.SelectedIndex
                LancarPagamento(ParcelaSelecionada)
            Next

        End If

        If lstPagamento.Items.Count > 0 Then
            lstPagamento.Items(lstPagamento.Items.Count - 1).EnsureVisible()
        End If


        For i = 0 To lstPagamento.Items.Count - 1
            VLTotalPagamento += Convert.ToDecimal(lstPagamento.Items(i).SubItems(4).Text)
        Next

        If cmbPagamento.Text <> "" Then
            Dim IDPagamento As Integer
            IDPagamento = cmbPagamento.SelectedValue
            cmbParcelas.Items.Clear()
            ValidarParcelas(IDPagamento)
        End If


        cmbPagamento.SelectedIndex = -1
        cmbParcelas.SelectedIndex = -1
        cmbParcelas.Text = ""
        cmbDiaPagamento.SelectedIndex = -1
        cmbMesPagamento.SelectedIndex = -1
        txtVLPagamento.Text = "0,00"
        txtVLTotalPagamento.Text = VLTotalPagamento
        txtVLPagamento.Text = Convert.ToDecimal(txtVLTotalEspecifica.Text) - Convert.ToDecimal(txtVLTotalPagamento.Text)


    End Sub

    Sub LancarPagamento(ByRef Parcelas As Integer)

        Dim ListPagamento As New ListViewItem
        Dim PagamentoSelecionada As String
        Dim MaxID As Integer = 0
        Dim ValorPagamento As Decimal
        Dim ParcelaSelecionada As Integer
        Dim DiaSelecionado As Integer
        Dim MesSelecionado As Integer
        Dim DiferencaParcela As Decimal
        PagamentoSelecionada = cmbPagamento.Text
        ValorPagamento = Convert.ToDecimal(txtVLPagamento.Text)
        ParcelaSelecionada = cmbParcelas.SelectedIndex + 1

        If Not AVista = True Then
            DiaSelecionado = cmbDiaPagamento.Text
            MesSelecionado = cmbMesPagamento.SelectedIndex + 1
        End If

        Dim DataSelecionada As Date
        If AVista = True Then
            DataSelecionada = New Date(Date.Now.Year, Date.Now.Month, Date.Now.Day)
        Else
            DataSelecionada = New Date(Date.Now.Year, MesSelecionado, DiaSelecionado)
        End If

        MaxID = lstPagamento.Items.Count + 1

        ValorPagamento = (ValorPagamento / ParcelaSelecionada)
        ValorPagamento = FormatNumber(ValorPagamento, 2)

        If (lstPagamento.Items.Count = 0 OrElse (lstPagamento.Items(0).SubItems(2).Text = "Dinheiro" And lstPagamento.Items.Count < 2)) Then
            If (ValorPagamento * ParcelaSelecionada) > Convert.ToDecimal(txtVLPagamento.Text) Then
                DiferencaParcela = (ValorPagamento * ParcelaSelecionada) - Convert.ToDecimal(txtVLPagamento.Text)
                ValorPagamento = ValorPagamento - IIf(DiferencaParcela > 0, DiferencaParcela, 0)
            ElseIf (ValorPagamento * ParcelaSelecionada) < Convert.ToDecimal(txtVLPagamento.Text) Then
                DiferencaParcela = Convert.ToDecimal(txtVLPagamento.Text) - (ValorPagamento * ParcelaSelecionada)
                ValorPagamento = ValorPagamento + IIf(DiferencaParcela > 0, DiferencaParcela, 0)
            End If
        End If

        For i = 0 To lstPagamento.Items.Count - 1
            If MaxID = lstPagamento.Items(i).SubItems(1).Text Then
                MaxID = MaxID + 1
            End If

            If DataSelecionada = lstPagamento.Items(i).SubItems(3).Text Then
                DataSelecionada = DataSelecionada.AddMonths(1)
            End If

        Next

        ListPagamento.SubItems.Add(MaxID)
        ListPagamento.SubItems.Add(PagamentoSelecionada)
        ListPagamento.SubItems.Add(DataSelecionada)
        ListPagamento.SubItems.Add(ValorPagamento)

        lstPagamento.Items.Add(ListPagamento)

    End Sub

    Private Sub btnAlterarPagamento_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAlterarPagamento.Click
        If (Me.lstPagamento.SelectedItems.Count = 1) Then
            Me.cmbPagamento.Enabled = True
            Me.txtVLPagamento.Enabled = True
            Me.cmbParcelas.Text = ""
            Me.cmbParcelas.Enabled = False
            Me.cmbDiaPagamento.Enabled = True
            Me.cmbMesPagamento.Enabled = True
        End If
    End Sub

    Private Sub lstPagamento_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstPagamento.SelectedIndexChanged
        If (lstPagamento.SelectedItems.Count >= 0) Then
            Dim i As Integer
            For i = 0 To lstPagamento.SelectedItems.Count - 1
                If (lstPagamento.SelectedItems(i).Text <> "Nothing!") Then
                    NavegarPagamentoLV(CInt(lstPagamento.SelectedItems(i).SubItems(1).Text))
                End If
            Next
        End If
    End Sub

    Sub NavegarPagamentoLV(ByVal ItemPagamento As Integer)
        Try

            Dim Selected As ListViewItem = lstPagamento.Items(Convert.ToInt32(ItemPagamento - 1))

            Dim Data As Date
            Data = Convert.ToDateTime(Selected.SubItems(3).Text)

            If (Selected IsNot Nothing AndAlso Selected.SubItems.Count > 0) Then
                Me.cmbPagamento.Text = Selected.SubItems(2).Text
                Me.cmbDiaPagamento.Text = Data.Day
                Me.cmbMesPagamento.Text = Data.Month
                Me.txtVLPagamento.Text = Selected.SubItems(4).Text
                IDPagamentoSelecionado = Selected.SubItems(1).Text
            End If

            Me.cmbPagamento.Enabled = False
            Me.txtVLPagamento.Enabled = False
            Me.cmbParcelas.Text = ""
            Me.cmbParcelas.Enabled = False
            Me.cmbDiaPagamento.Enabled = False
            Me.cmbMesPagamento.Enabled = False


        Catch Er As Exception
            MsgBox(Er.Message, MsgBoxStyle.Critical, "Específica")
        Finally
            Me.Cursor = System.Windows.Forms.Cursors.Default
        End Try

    End Sub

    Private Sub btnDeletarPagamento_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeletarPagamento.Click

        Dim VLTotalPagamento As Decimal

        If lstPagamento.SelectedItems.Count > 0 Then
            lstPagamento.SelectedItems.Item(0).Remove()
        End If

        For i = 0 To lstPagamento.Items.Count - 1
            VLTotalPagamento += Convert.ToDecimal(lstPagamento.Items(i).SubItems(4).Text)
        Next

        Me.cmbPagamento.Enabled = True
        Me.txtVLPagamento.Enabled = True
        Me.cmbParcelas.Enabled = True
        Me.cmbDiaPagamento.Enabled = True
        Me.cmbMesPagamento.Enabled = True

        cmbPagamento.SelectedIndex = -1
        txtVLPagamento.Text = "0,00"
        cmbParcelas.SelectedIndex = -1
        cmbDiaPagamento.Text = ""
        cmbMesPagamento.Text = ""
        IDPagamentoSelecionado = 0
        txtVLTotalPagamento.Text = VLTotalPagamento

    End Sub

    Private Sub txtCPF_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCPF.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtCPF_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtCPF.Validating
        Try
            If txtCPF.Text <> "" Then


                If ValidarCPF(LTrim(Trim(txtCPF.Text.Replace("-", "").Replace("/", "").Replace(".", "")))) = False Then
                    MsgBox("CPF inválido", MsgBoxStyle.Information, "Gestor.Net")
                    txtCPF.Focus()
                    Exit Sub
                End If

                If sender.Text <> "" Then
                    sender.Text = Mid(sender.Text, 1, 3) & "." & Mid(sender.Text, 4, 3) & "." & Mid(sender.Text, 7, 3) & "-" & Mid(sender.Text, 10, 2)
                End If
            End If


            Dim Validar As Boolean
            Dim varCpfCNPJ As String
            varCpfCNPJ = txtCPF.Text.Replace("-", "").Replace("/", "").Replace(".", "")
            If btnIncluir.Text = strIncluirConfirmar Then
                Validar = True
            ElseIf btnAlterar.Text = strAlterarConfirmar Then
                If varCpfCNPJ <> txtCPF.Text Then
                    Validar = True
                Else
                    Validar = False
                End If
            End If

        Catch er As Exception
            MsgBox(er.Message, MsgBoxStyle.Critical, "Específica")
        End Try

    End Sub

    Private Sub txtRespCPF_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtRespCPF.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtRespCPF_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtRespCPF.Validating
        Try
            If txtRespCPF.Text <> "" Then


                If ValidarCPF(LTrim(Trim(txtRespCPF.Text.Replace("-", "").Replace("/", "").Replace(".", "")))) = False Then
                    MsgBox("CPF inválido", MsgBoxStyle.Information, "Gestor.Net")
                    txtCPF.Focus()
                    Exit Sub
                End If

                If sender.Text <> "" Then
                    sender.Text = Mid(sender.Text, 1, 3) & "." & Mid(sender.Text, 4, 3) & "." & Mid(sender.Text, 7, 3) & "-" & Mid(sender.Text, 10, 2)
                End If
            End If


            Dim Validar As Boolean
            Dim varCpfCNPJ As String
            varCpfCNPJ = txtRespCPF.Text.Replace("-", "").Replace("/", "").Replace(".", "")
            If btnIncluir.Text = strIncluirConfirmar Then
                Validar = True
            ElseIf btnAlterar.Text = strAlterarConfirmar Then
                If varCpfCNPJ <> txtRespCPF.Text Then
                    Validar = True
                Else
                    Validar = False
                End If
            End If

        Catch er As Exception
            MsgBox(er.Message, MsgBoxStyle.Critical, "Específica")
        End Try
    End Sub

    Private Sub txtCel_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCel.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtCEP_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCEP.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtDDDCel_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDDDCel.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtDDDTel_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDDDTel.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtNumero_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumero.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtRespCel_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtRespCel.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtRespCEP_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtRespCEP.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtRespDDDCel_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtRespDDDCel.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtRespDDDTel_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtRespDDDTel.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtRespNumero_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtRespNumero.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtRespTel_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtRespTel.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtTel_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTel.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(Numeric(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub btnCopiarDados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopiarDados.Click

        txtNome.Text = txtRespNome.Text
        txtCPF.Text = txtRespCPF.Text
        txtRG.Text = txtRespRG.Text
        txtEmissor.Text = txtRespEmissor.Text
        txtUFRG.Text = txtRespUFRG.Text
        DTNascimento.Text = DTNascimentoResp.Text
        txtCEP.Text = txtRespCEP.Text
        txtLocalidade.Text = txtRespLocalidade.Text
        txtBairro.Text = txtRespBairro.Text
        txtLogradouro.Text = txtRespLogradouro.Text
        txtComplLogradouro.Text = txtRespComplLogradouro.Text
        txtNumero.Text = txtRespNumero.Text
        txtDDDTel.Text = txtRespDDDTel.Text
        txtTel.Text = txtRespTel.Text
        txtDDDCel.Text = txtRespDDDCel.Text
        txtCel.Text = txtRespCel.Text
        txtEmail.Text = txtRespEmail.Text

    End Sub

    Private Sub cmbCOC_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbCOC.SelectionChangeCommitted

        If cmbCOC.SelectedIndex = 0 Then
            txtEscola.Visible = False
            lblEscola.Text = "Qual Escola?"
            cmbCursoCOC.Visible = True
            lblEscola.Visible = True
        Else
            cmbCursoCOC.Visible = False
            txtEscola.Visible = True
            lblEscola.Visible = True
            lblEscola.Text = "Está estudando a quantos semestres?"
        End If

    End Sub

    Private Sub btnAlterar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAlterar.Click

        If btnAlterar.Text = strAlterar Then
            txtMatricula.Enabled = False
            STMatricula.Enabled = True
            GroupBox2.Enabled = True
            GroupBox1.Enabled = True
            GroupBox3.Enabled = True
            GroupBox5.Enabled = True
            GroupBox4.Enabled = True
            LstEspecifica.Enabled = True

            txtUF.Enabled = False
            txtLocalidade.Enabled = False
            txtBairro.Enabled = False
            txtRespUF.Enabled = False
            txtRespLocalidade.Enabled = False
            txtRespBairro.Enabled = False

            If lstCheque.Items.Count > 0 Then
                GroupBox8.Enabled = True
                lstCheque.Enabled = True
                txtBanco.Enabled = False
                txtAgencia.Enabled = False
                txtConta.Enabled = False
                txtNrCheque.Enabled = False
                btnAdicionarCheque.Enabled = False
                btnDeletarCheque.Enabled = True
            End If

            btnAlterar.Text = strAlterarConfirmar

            btnConsultar.Enabled = False
            btnAlterar.Enabled = True
            btnImprimirContrato.Enabled = False
            btnCancelarContrato.Enabled = False
            STMatricula.Checked = True
            btnIncluir.Enabled = False

            txtVLPagamento.Text = "0,00"

        Else

            If txtRespNome.Text = "" Then
                MsgBox("Preenchimento do nome do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespNome.Focus()
                Exit Sub
            End If

            If txtRespCPF.Text = "" Then
                MsgBox("Preenchimento do CPF do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespCPF.Focus()
                Exit Sub
            End If

            If txtRespRG.Text = "" Then
                MsgBox("Preenchimento do RG do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespRG.Focus()
                Exit Sub
            End If

            If txtRespEmissor.Text = "" Then
                MsgBox("Preenchimento do Emissor do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespEmissor.Focus()
                Exit Sub
            End If

            If txtRespUFRG.Text = "" Then
                MsgBox("Preenchimento da UF do RG do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespUFRG.Focus()
                Exit Sub
            End If

            If txtRespCEP.Text = "" Then
                MsgBox("Preenchimento do CEP do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespCEP.Focus()
                Exit Sub
            End If

            If txtRespLogradouro.Text = "" Then
                MsgBox("Preenchimento do Logradouro do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespLogradouro.Focus()
                Exit Sub
            End If

            If txtRespComplLogradouro.Text = "" Then
                MsgBox("Preenchimento do Complemento Logradouro do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespComplLogradouro.Focus()
                Exit Sub
            End If

            If txtRespNumero.Text = "" Then
                MsgBox("Preenchimento do Número do responsável é obrigatório!", MsgBoxStyle.Information)
                txtRespNumero.Focus()
                Exit Sub
            End If

            If ((txtRespDDDTel.Text = "" AndAlso txtRespTel.Text = "") And (txtRespDDDCel.Text = "" AndAlso txtRespCel.Text = "")) Then
                MsgBox("É obrigatório o preenchimento de pelo menos um telefone!", MsgBoxStyle.Information)
                txtRespTel.Focus()
                Exit Sub
            End If

            If (DTNascimentoResp.Text = "" OrElse Convert.ToDateTime(DTNascimentoResp.Text) = Date.Now.Date) Then
                MsgBox("Preenchimento da Data de Nascimento do responsável é obrigatório!", MsgBoxStyle.Information)
                DTNascimentoResp.Focus()
                Exit Sub
            End If

            If txtNome.Text = "" Then
                MsgBox("Preenchimento do Nome do Aluno é obrigatório!", MsgBoxStyle.Information)
                txtNome.Focus()
                Exit Sub
            End If

            If (DTNascimento.Text = "" OrElse Convert.ToDateTime(DTNascimento.Text) = Date.Now.Date) Then
                MsgBox("Preenchimento da Data de Nascimento do Aluno é obrigatório!", MsgBoxStyle.Information)
                DTNascimento.Focus()
                Exit Sub
            End If

            If LstEspecifica.Items.Count = 0 Then
                MsgBox("É obrigatório o lançamento de pelo menos uma Específica!", MsgBoxStyle.Information)
                'TabControl1.SelectTab(2)
                Exit Sub
            End If

            If lstPagamento.Items.Count = 0 Then
                MsgBox("É obrigatório o lançamento de pelo menos uma forma de Pagamento!", MsgBoxStyle.Information)
                'TabControl1.SelectTab(3)
                Exit Sub
            End If

            If LstEspecifica.Items.Count = 0 Then
                MsgBox("É obrigatório o lançamento de pelo menos uma Específica!", MsgBoxStyle.Information)
                'TabControl1.SelectTab(2)
                Exit Sub
            End If

            If txtVLTotalEspecifica.Text <> txtVLTotalPagamento.Text Then
                MsgBox("O valor total das parcelas está diferente do valor total das específicas!", MsgBoxStyle.Information)
                cmbPagamento.Focus()
                Exit Sub
            End If

            If (DTInicioAula.Text = "") Then
                MsgBox("Preenchimento da Data de Inicio das Aulas do Aluno é obrigatório!", MsgBoxStyle.Information)
                DTNascimento.Focus()
                Exit Sub
            End If

            If (DTFimAula.Text = "") Then
                MsgBox("Preenchimento da Data de Fim das Aulas do Aluno é obrigatório!", MsgBoxStyle.Information)
                DTNascimento.Focus()
                Exit Sub
            End If

            If lstPagamento.Items.Count > 0 Then
                For i = 0 To lstPagamento.Items.Count - 1
                    Dim RetornoParcela As New List(Of SPPagamentoConsultarResult)
                    Dim TipoPagamento As String
                    TipoPagamento = lstPagamento.Items(i).SubItems(2).Text
                    RetornoParcela = db.SPPagamentoConsultar(0, TipoPagamento).ToList()

                    If (RetornoParcela(0).STCheque = True AndAlso lstCheque.Items.Count = 0) Then
                        MsgBox("É obrigatório o lançamento dos dados dos cheques lançados!", MsgBoxStyle.Information)
                        'TabControl1.SelectTab(4)
                        Exit Sub
                    End If
                Next

                Dim QuantidadeCheque As Integer = 0

                For i = 0 To lstPagamento.Items.Count - 1

                    If lstPagamento.Items(i).SubItems(2).Text = "Cheque" Then
                        QuantidadeCheque = QuantidadeCheque + 1
                    End If

                Next

                Dim ChequePendente As Integer = 0
                ChequePendente = QuantidadeCheque - lstCheque.Items.Count

                If ChequePendente <> 0 Then
                    MsgBox("Não foram informados todos os dados dos cheques lançados no pagamento!", MsgBoxStyle.Information)
                    GroupBox8.Enabled = True
                    btnAdicionarCheque.Enabled = True
                    LimparCampos(GroupBox8)
                    'TabControl1.SelectTab(4)
                    Exit Sub
                End If


            End If

            Dim DataMatricula As Date
            Dim STCOC As Boolean
            Dim DataNascimento As Date
            Dim DataNascimentoResponsavel As Date

            DataNascimento = CDate(DTNascimento.Text)
            DataNascimentoResponsavel = CDate(DTNascimentoResp.Text)

            DataMatricula = Date.Now.Date

            If cmbCOC.Text = "Sim" Then
                STCOC = True
            ElseIf cmbCOC.Text = "Não" Then
                STCOC = False
            End If

            Dim AlunoSelecionado As List(Of SPAlunoConsultarResult)
            AlunoSelecionado = db.SPAlunoConsultar(Convert.ToInt32(txtCDAluno.Text), 0, "", "", "", "", 0, "", 0, 0).ToList()

            db.SPAlunoAlterar(Convert.ToInt32(txtCDAluno.Text), _
                              Convert.ToInt32(txtMatricula.Text.Replace("/", "").Replace("-", "")), _
                              txtNome.Text, _
                              txtCPF.Text.Replace("-", "").Replace("/", "").Replace(".", ""), _
                              txtRG.Text, _
                              txtEmissor.Text, _
                              txtUFRG.Text, _
                              DataNascimento, _
                              txtCEP.Text, _
                              txtLogradouro.Text, _
                              txtComplLogradouro.Text, _
                              txtNumero.Text, _
                              txtDDDTel.Text, _
                              txtTel.Text, _
                              txtDDDCel.Text, _
                              txtCel.Text, _
                              txtEmail.Text, _
                              Convert.ToBoolean(STCOC), _
                              Convert.ToInt32(cmbCursoCOC.SelectedIndex), _
                              txtEscola.Text, _
                              txtObs.Text, _
                              Convert.ToBoolean(IIf(STMatricula.Checked = True, True, False)), _
                              AlunoSelecionado(0).IDFuncionarioCadastro, _
                              AlunoSelecionado(0).DTCadastro, _
                              GlobalLogin, _
                              Convert.ToDateTime(DataMatricula))

            db.SPResponsavelAlterar(Convert.ToInt32(txtCDAluno.Text), _
                                    Convert.ToString(txtRespNome.Text), _
                                    txtRespCPF.Text.Replace("-", "").Replace("/", "").Replace(".", ""), _
                                    txtRespRG.Text, _
                                    txtRespEmissor.Text, _
                                    txtRespUFRG.Text, _
                                    DataNascimentoResponsavel, _
                                    Convert.ToInt32(txtRespCEP.Text), _
                                    txtRespLogradouro.Text, _
                                    txtRespComplLogradouro.Text, _
                                    txtRespNumero.Text, _
                                    txtRespDDDTel.Text, _
                                    txtRespTel.Text, _
                                    txtRespDDDCel.Text, _
                                    txtRespCel.Text, _
                                    txtRespEmail.Text)

            db.SPAlunoEspecificaExcluir(Convert.ToInt32(txtCDAluno.Text))

            For i = 0 To LstEspecifica.Items.Count - 1

                Dim IDEspecifica As Integer
                Dim DTInicio As Date
                Dim DTFim As Date
                Dim TabelaEspecifica As New List(Of SPEspecificaConsultarResult)
                TabelaEspecifica = db.SPEspecificaConsultar(0, LstEspecifica.Items(i).SubItems(2).Text).ToList()
                IDEspecifica = TabelaEspecifica(0).IDEspecifica
                DTInicio = TabelaEspecifica(0).DTInicioAula
                DTFim = TabelaEspecifica(0).DTFimAula

                db.SPAlunoEspecificaIncluir(Convert.ToInt32(txtCDAluno.Text), _
                                            Convert.ToInt32(txtMatricula.Text.Replace("/", "").Replace("-", "")), _
                                            Convert.ToInt32(LstEspecifica.Items(i).SubItems(1).Text), _
                                            Convert.ToInt32(IDEspecifica), _
                                            Convert.ToDecimal(LstEspecifica.Items(i).SubItems(6).Text), _
                                            DTInicio, _
                                            DTFim)

            Next

            db.SPAlunoPagamentoExcluir(Convert.ToInt32(txtCDAluno.Text))


            For x = 0 To lstPagamento.Items.Count - 1

                Dim IDPagamento As Integer
                Dim STRecebido As Boolean
                Dim TabelaPagamento As New List(Of SPPagamentoConsultarResult)
                TabelaPagamento = db.SPPagamentoConsultar(0, lstPagamento.Items(x).SubItems(2).Text).ToList()
                IDPagamento = TabelaPagamento(0).IDPagamento
                STRecebido = IIf(TabelaPagamento(0).STAVista = True, True, False)

                Dim Banco As String
                Dim Agencia As String
                Dim Conta As String
                Dim NRCheque As String


                If lstPagamento.Items(x).SubItems(2).Text = "Cheque" AndAlso lstPagamento.Items(0).SubItems(2).Text = "Dinheiro" Then
                    Banco = lstCheque.Items(x - 1).SubItems(1).Text
                    Agencia = lstCheque.Items(x - 1).SubItems(2).Text
                    Conta = lstCheque.Items(x - 1).SubItems(3).Text
                    NRCheque = lstCheque.Items(x - 1).SubItems(4).Text
                ElseIf lstPagamento.Items(x).SubItems(2).Text = "Cheque" Then
                    Banco = lstCheque.Items(x).SubItems(1).Text
                    Agencia = lstCheque.Items(x).SubItems(2).Text
                    Conta = lstCheque.Items(x).SubItems(3).Text
                    NRCheque = lstCheque.Items(x).SubItems(4).Text
                Else
                    Banco = ""
                    Agencia = ""
                    Conta = ""
                    NRCheque = ""
                End If

                db.SPAlunoPagamentoIncluir(Convert.ToInt32(txtCDAluno.Text), _
                                            Convert.ToInt32(txtMatricula.Text.Replace("/", "").Replace("-", "")), _
                                           Convert.ToInt32(lstPagamento.Items(x).SubItems(1).Text), _
                                           Convert.ToInt32(IDPagamento), _
                                           Convert.ToDateTime(lstPagamento.Items(x).SubItems(3).Text), _
                                           Convert.ToDecimal(lstPagamento.Items(x).SubItems(4).Text), _
                                           Convert.ToString(Banco), _
                                           Convert.ToString(Agencia), _
                                           Convert.ToString(Conta), _
                                           Convert.ToString(NRCheque), _
                                           STRecebido)

            Next


            txtMatricula.Enabled = False
            STMatricula.Enabled = False
            GroupBox2.Enabled = False
            GroupBox1.Enabled = False
            GroupBox3.Enabled = False
            GroupBox5.Enabled = False
            GroupBox4.Enabled = False
            GroupBox8.Enabled = False
            LstEspecifica.Enabled = False
            lstCheque.Enabled = False

            btnAlterar.Text = strAlterar

            btnConsultar.Enabled = True
            btnIncluir.Enabled = True
            btnImprimirContrato.Enabled = True
            btnCancelarContrato.Enabled = True


            MsgBox("Aluno alterado com sucesso!", MsgBoxStyle.Information)

        End If

    End Sub

    Private Sub btnAdicionarCheque_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdicionarCheque.Click

        If txtNrCheque.Text = "" Then
            If txtBanco.Enabled = False Then
                txtBanco.Enabled = True
            End If

            If txtAgencia.Enabled = False Then
                txtAgencia.Enabled = True
            End If

            If txtConta.Enabled = False Then
                txtConta.Enabled = True
            End If

            If txtNrCheque.Enabled = False Then
                txtNrCheque.Enabled = True
            End If

            Exit Sub
        End If

        Dim ListCheque As New ListViewItem

        Dim Banco As String
        Dim Agencia As String
        Dim Conta As String
        Dim NRCheque As Integer

        If (txtBanco.Text = "" OrElse txtAgencia.Text = "" OrElse txtConta.Text = "" OrElse txtNrCheque.Text = "") Then
            MsgBox("É obrigatório que seja informado os dados completos!", MsgBoxStyle.Information)
            Exit Sub
        End If

        Banco = Convert.ToString(txtBanco.Text)
        Agencia = Convert.ToString(txtAgencia.Text)
        Conta = Convert.ToString(txtConta.Text)
        NRCheque = Convert.ToInt64(txtNrCheque.Text)

        Dim QuantidadeCheque As Integer = 0

        For i = 0 To lstPagamento.Items.Count - 1

            If lstPagamento.Items(i).SubItems(2).Text = "Cheque" Then
                QuantidadeCheque = QuantidadeCheque + 1
            End If

        Next

        Dim ChequePendente As Integer = 0
        ChequePendente = QuantidadeCheque - lstCheque.Items.Count

        If ChequePendente = 0 Then
            MsgBox("Todos os cheques já foram lançados!", MsgBoxStyle.Information)
            txtBanco.Enabled = False
            txtAgencia.Enabled = False
            txtConta.Enabled = False
            txtNrCheque.Enabled = False
            btnAdicionarCheque.Enabled = False
            LimparCampos(GroupBox8)
            Exit Sub
        End If

        For i = 0 To ChequePendente - 1
            LancarCheque(Banco, Agencia, Conta, NRCheque)
        Next



        If lstCheque.Items.Count > 0 Then
            lstCheque.Items(lstCheque.Items.Count - 1).EnsureVisible()
        End If

        txtNrCheque.Text = ""

        ChequePendente = QuantidadeCheque - lstCheque.Items.Count
        If ChequePendente = 0 Then
            txtBanco.Enabled = False
            txtAgencia.Enabled = False
            txtConta.Enabled = False
            txtNrCheque.Enabled = False
            btnAdicionarCheque.Enabled = False
            LimparCampos(GroupBox8)
        End If

    End Sub


    Sub LancarCheque(ByRef Banco As String, ByRef Agencia As String, ByRef Conta As String, ByRef NRCheque As Integer)

        Dim ListCheque As New ListViewItem
        Dim MaxCheque As Integer = 0

        MaxCheque = NRCheque

        For i = 0 To lstCheque.Items.Count - 1
            If MaxCheque = Convert.ToInt64(lstCheque.Items(i).SubItems(4).Text) Then
                MaxCheque = MaxCheque + 1
            End If
        Next

        ListCheque.SubItems.Add(Banco)
        ListCheque.SubItems.Add(Agencia)
        ListCheque.SubItems.Add(Conta)
        ListCheque.SubItems.Add(MaxCheque)

        lstCheque.Items.Add(ListCheque)

    End Sub

    Private Sub btnDeletarCheque_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnDeletarCheque.Click

        If lstCheque.SelectedItems.Count > 0 Then
            lstCheque.SelectedItems.Item(0).Remove()
        End If

        txtNrCheque.Text = ""
        btnAdicionarCheque.Enabled = True

    End Sub

    Private Sub lstCheque_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstCheque.SelectedIndexChanged

        If (lstCheque.SelectedItems.Count >= 0) Then
            Dim i As Integer
            For i = 0 To lstCheque.SelectedItems.Count - 1
                If (lstCheque.SelectedItems(i).Text <> "Nothing!") Then
                    NavegarCheque(CInt(lstCheque.SelectedItems(i).Index))
                End If
            Next
        End If

    End Sub

    Private Sub txtCEP_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtCEP.Validating

        Dim TabelaCEP As New List(Of SPCEPConsultarResult)
        TabelaCEP = db.SPCEPConsultar(Convert.ToInt32(txtCEP.Text)).ToList()

        txtUF.Text = TabelaCEP(0).UF
        txtLocalidade.Text = TabelaCEP(0).Localidade
        txtBairro.Text = TabelaCEP(0).Bairro
        txtLogradouro.Text = TabelaCEP(0).Logradouro
        txtDDDTel.Text = TabelaCEP(0).DDD
        txtDDDCel.Text = TabelaCEP(0).DDD

    End Sub

    Private Sub txtRespCEP_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtRespCEP.Validating

        Dim TabelaCEP As New List(Of SPCEPConsultarResult)
        Dim CEP As Integer
        CEP = Convert.ToInt32(txtRespCEP.Text)
        TabelaCEP = db.SPCEPConsultar(CEP).ToList()

        txtRespUF.Text = TabelaCEP(0).UF
        txtRespLocalidade.Text = TabelaCEP(0).Localidade
        txtRespBairro.Text = TabelaCEP(0).Bairro
        txtRespLogradouro.Text = TabelaCEP(0).Logradouro
        txtRespDDDTel.Text = TabelaCEP(0).DDD
        txtRespDDDCel.Text = TabelaCEP(0).DDD

    End Sub

    Private Sub btnImprimirContrato_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnImprimirContrato.Click

        Dim ListAluno As List(Of SPDadosContratoResult)
        ListAluno = db.SPDadosContrato(txtCDAluno.Text).ToList()

        Dim DSAluno As DataSet
        DSAluno = New DataSet()

        DSAluno.Tables.Add(New DataTable("SPDadosContrato"))

        DSAluno.Tables(0).Columns.Add("IDAluno")
        DSAluno.Tables(0).Columns.Add("Matricula")
        DSAluno.Tables(0).Columns.Add("Nome")
        DSAluno.Tables(0).Columns.Add("Endereco")
        DSAluno.Tables(0).Columns.Add("Nome1")
        DSAluno.Tables(0).Columns.Add("CPF")
        DSAluno.Tables(0).Columns.Add("RG")
        DSAluno.Tables(0).Columns.Add("DTNascimento")
        DSAluno.Tables(0).Columns.Add("DTCadastro")
        DSAluno.Tables(0).Columns.Add("DTInicioAula")
        DSAluno.Tables(0).Columns.Add("DTFimAula")
        DSAluno.Tables(0).Columns.Add("DDDTelefone")
        DSAluno.Tables(0).Columns.Add("Telefone")
        DSAluno.Tables(0).Columns.Add("DDDCelular")
        DSAluno.Tables(0).Columns.Add("Celular")

        Dim row As DataRow = DSAluno.Tables(0).NewRow()

        row("IDAluno") = ListAluno(0).IDAluno
        row("Matricula") = ListAluno(0).Matricula
        row("Nome") = ListAluno(0).Nome
        row("Endereco") = ListAluno(0).Endereco
        row("Nome1") = ListAluno(0).Nome1
        row("CPF") = Mid(ListAluno(0).CPF, 1, 3) & "." & Mid(ListAluno(0).CPF, 4, 3) & "." & Mid(ListAluno(0).CPF, 7, 3) & "-" & Mid(ListAluno(0).CPF, 10, 2)
        row("RG") = ListAluno(0).RG
        row("DTNascimento") = ListAluno(0).DTNascimento
        row("DTCadastro") = ListAluno(0).DTCadastro
        row("DDDTelefone") = ListAluno(0).DDDTelefone
        row("Telefone") = ListAluno(0).Telefone
        row("DDDCelular") = ListAluno(0).DDDCelular
        row("Celular") = ListAluno(0).Celular

        DSAluno.Tables(0).Rows.Add(row)
        DSAluno.AcceptChanges()



        Dim ListPagamento As List(Of SPDadosContratoPagamentoResult)
        ListPagamento = db.SPDadosContratoPagamento(txtCDAluno.Text).ToList()

        Dim DSPagamento As DataSet
        DSPagamento = New DataSet()

        DSPagamento.Tables.Add(New DataTable("SPDadosContratoPagamento"))

        DSPagamento.Tables(0).Columns.Add("IDAluno")
        DSPagamento.Tables(0).Columns.Add("Parcelas")
        DSPagamento.Tables(0).Columns.Add("Pagamento")

        Dim rowPagamento As DataRow = DSPagamento.Tables(0).NewRow()

        rowPagamento("IDAluno") = ListPagamento(0).IDAluno
        rowPagamento("Parcelas") = ListPagamento(0).Parcelas
        rowPagamento("Pagamento") = ListPagamento(0).Pagamento

        DSPagamento.Tables(0).Rows.Add(rowPagamento)
        DSPagamento.AcceptChanges()



        Dim ListEspecifica As List(Of SPDadosContratoEspecificaResult)
        ListEspecifica = db.SPDadosContratoEspecifica(txtCDAluno.Text).ToList()

        Dim DSEspecifica As DataSet
        DSEspecifica = New DataSet()

        DSEspecifica.Tables.Add(New DataTable("SPDadosContratoEspecifica"))

        DSEspecifica.Tables(0).Columns.Add("IDAluno")
        DSEspecifica.Tables(0).Columns.Add("DEEspecifica")
        DSEspecifica.Tables(0).Columns.Add("Desconto")
        DSEspecifica.Tables(0).Columns.Add("Valor")
        DSEspecifica.Tables(0).Columns.Add("ResponsavelEspecifica1")
        DSEspecifica.Tables(0).Columns.Add("CPFResponsavelEspecifica1")
        DSEspecifica.Tables(0).Columns.Add("ResponsavelEspecifica2")
        DSEspecifica.Tables(0).Columns.Add("CPFResponsavelEspecifica2")
        DSEspecifica.Tables(0).Columns.Add("DEEmpresa")
        DSEspecifica.Tables(0).Columns.Add("CNPJEmpresa")
        DSEspecifica.Tables(0).Columns.Add("IEEmpresa")
        DSEspecifica.Tables(0).Columns.Add("DTInicioAula")
        DSEspecifica.Tables(0).Columns.Add("DTFimAula")
        DSEspecifica.Tables(0).Columns.Add("DTInicioAulaFormat")
        DSEspecifica.Tables(0).Columns.Add("DTFimAulaFormat")
        DSEspecifica.Tables(0).Columns.Add("DataLimiteCancelamento")
        DSEspecifica.Tables(0).Columns.Add("VLCurso")
        DSEspecifica.Tables(0).Columns.Add("DescontoEspecifica")
        'DSEspecifica.Tables(0).Columns.Add("Assinatura")



        For x = 0 To ListEspecifica.Count - 1

            Dim rowEspecifica As DataRow = DSEspecifica.Tables(0).NewRow()

            rowEspecifica("IDAluno") = ListEspecifica(x).IDAluno
            rowEspecifica("DEEspecifica") = ListEspecifica(x).DEEspecifica
            rowEspecifica("Desconto") = ListEspecifica(x).Desconto
            rowEspecifica("Valor") = ListEspecifica(x).Valor
            rowEspecifica("ResponsavelEspecifica1") = ListEspecifica(x).ResponsavelEspecifica1
            rowEspecifica("CPFResponsavelEspecifica1") = Mid(ListEspecifica(x).CPFResponsavelEspecifica1, 1, 3) & "." & Mid(ListEspecifica(x).CPFResponsavelEspecifica1, 4, 3) & "." & Mid(ListEspecifica(x).CPFResponsavelEspecifica1, 7, 3) & "-" & Mid(ListEspecifica(x).CPFResponsavelEspecifica1, 10, 2)
            rowEspecifica("ResponsavelEspecifica2") = ListEspecifica(x).ResponsavelEspecifica2
            rowEspecifica("CPFResponsavelEspecifica2") = Mid(ListEspecifica(x).CPFResponsavelEspecifica2, 1, 3) & "." & Mid(ListEspecifica(x).CPFResponsavelEspecifica2, 4, 3) & "." & Mid(ListEspecifica(x).CPFResponsavelEspecifica2, 7, 3) & "-" & Mid(ListEspecifica(x).CPFResponsavelEspecifica2, 10, 2)
            rowEspecifica("DEEmpresa") = ListEspecifica(x).DEEmpresa
            rowEspecifica("CNPJEmpresa") = Mid(ListEspecifica(x).CNPJEmpresa, 1, 2) & "." & Mid(ListEspecifica(x).CNPJEmpresa, 3, 3) & "." & Mid(ListEspecifica(x).CNPJEmpresa, 6, 3) & "/" & Mid(ListEspecifica(x).CNPJEmpresa, 9, 4) & "-" & Mid(ListEspecifica(x).CNPJEmpresa, 13, 2)
            rowEspecifica("IEEmpresa") = Mid(ListEspecifica(x).IEEmpresa, 1, 2) & "." & Mid(ListEspecifica(x).IEEmpresa, 3, 3) & "." & Mid(ListEspecifica(x).IEEmpresa, 6, 3) & "/" & Mid(ListEspecifica(x).IEEmpresa, 9, 3) & "-" & Mid(ListEspecifica(x).IEEmpresa, 12, 2)
            rowEspecifica("DTInicioAula") = ListEspecifica(x).DTInicioAula
            rowEspecifica("DTFimAula") = ListEspecifica(x).DTFimAula
            rowEspecifica("DTInicioAulaFormat") = ListEspecifica(x).DTInicioAulaFormat
            rowEspecifica("DTFimAulaFormat") = ListEspecifica(x).DTFimAulaFormat
            rowEspecifica("DataLimiteCancelamento") = ListEspecifica(x).DataLimiteCancelamento
            rowEspecifica("VLCurso") = ListEspecifica(x).VLCurso
            rowEspecifica("DescontoEspecifica") = ListEspecifica(x).DescontoEspecifica
            'rowEspecifica("Assinatura") = ListEspecifica(x).Assinatura

            'Dim bit As Image = Image.FromStream(New MemoryStream(ListEspecifica(x).Assinatura.ToArray()))
            'Dim img As New MemoryStream()
            'bit.Save(img, System.Drawing.Imaging.ImageFormat.Jpeg)
            'rowEspecifica("Assinatura") = img.ToArray()

            'Dim teste As Especifica
            'teste = db.Especificas.FirstOrDefault(Function(c) c.DEEspecifica = Convert.ToString(rowEspecifica("DEEspecifica")))

            'rowEspecifica("Assinatura") = teste.Assinatura.ToArray()

            'oAssinaturaMemStream = New System.IO.MemoryStream(ListEspecifica(x).Assinatura.ToArray())
            'rowEspecifica("Assinatura") = Image.FromStream(oAssinaturaMemStream)


            DSEspecifica.Tables(0).Rows.Add(rowEspecifica)

        Next

        DSEspecifica.AcceptChanges()



        Dim ListCheque As List(Of SPDadosContratoChequeResult)
        ListCheque = db.SPDadosContratoCheque(txtCDAluno.Text).ToList()

        Dim DSCheque As DataSet
        DSCheque = New DataSet()

        DSCheque.Tables.Add(New DataTable("SPDadosContratoCheque"))

        DSCheque.Tables(0).Columns.Add("IDAluno")
        DSCheque.Tables(0).Columns.Add("Banco")
        DSCheque.Tables(0).Columns.Add("Agencia")
        DSCheque.Tables(0).Columns.Add("Conta")
        DSCheque.Tables(0).Columns.Add("NRCheque")
        DSCheque.Tables(0).Columns.Add("DTParcela")
        DSCheque.Tables(0).Columns.Add("VLParcela")

        For i = 0 To ListCheque.Count - 1

            Dim rowCheque As DataRow = DSCheque.Tables(0).NewRow()

            rowCheque("IDAluno") = ListCheque(i).IDAluno
            rowCheque("Banco") = ListCheque(i).Banco
            rowCheque("Agencia") = ListCheque(i).Agencia
            rowCheque("Conta") = ListCheque(i).Conta
            rowCheque("NRCheque") = ListCheque(i).NRCheque
            rowCheque("DTParcela") = ListCheque(i).DTParcela
            rowCheque("VLParcela") = ListCheque(i).VLParcela

            DSCheque.Tables(0).Rows.Add(rowCheque)

        Next

        DSCheque.AcceptChanges()




        Dim DS As New DataSet

        DS.Tables.Add(DSAluno.Tables(0).Copy)
        DS.Tables.Add(DSEspecifica.Tables(0).Copy)
        DS.Tables.Add(DSPagamento.Tables(0).Copy)

        'If DSCheque.Tables(0).Rows.Count > 0 Then
        DS.Tables.Add(DSCheque.Tables(0).Copy)
        'End If

        DS.AcceptChanges()

        Dim Contrato As Contrato
        Contrato = New Contrato()

        Contrato.SetDataSource(DS)

        RelContrato.CrystalReportViewer1.ReportSource = Contrato
        RelContrato.CrystalReportViewer1.RefreshReport()

        'Dim oRelSub As CrystalDecisions.CrystalReports.Engine.ReportDocument

        'oRelSub = Contrato.OpenSubreport("SubAssinatura.rpt")
        'Dim Assin As New DataSet
        'Assin = GetAssinatura(9)
        'oRelSub.SetDataSource(Assin)


        RelContrato.Show()


        Return

    End Sub



    Private Sub btnDeletarTodosPagamento_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeletarTodosPagamento.Click

        If lstPagamento.Items.Count > 0 Then
            lstPagamento.Items.Clear()
            txtVLTotalPagamento.Text = "0,00"
            cmbPagamento.SelectedIndex = -1
            txtVLPagamento.Text = "0,00"
            cmbParcelas.SelectedIndex = -1
            cmbDiaPagamento.Text = ""
            cmbMesPagamento.Text = ""
            IDPagamentoSelecionado = 0
        End If

    End Sub

    Private Sub btnCancelarContrato_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelarContrato.Click

        Dim CancelamentoMatricula As FrmCancelamentoMatricula
        CancelamentoMatricula = New FrmCancelamentoMatricula
        CancelamentoMatricula.Owner = Me
        CancelamentoMatricula.txtCDAluno.Text = Me.txtCDAluno.Text
        CancelamentoMatricula.ShowDialog()

    End Sub

    Private Sub TabControl1_SelectedPageChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedPageChanged

        If TabControl1.SelectedIndex = 3 Then
            If LstEspecifica.Items.Count = 0 Then
                MsgBox("Não existem específicas lançadas, favor selecionar ao menos uma específica!", MsgBoxStyle.Information)
                TabControl1.SelectedIndex = 2
                Exit Sub
            Else
                txtVLPagamento.Text = txtVLTotalEspecifica.Text
            End If
        End If

    End Sub

    Private Sub cmbEspecifica_SelectedValueChanged(sender As Object, e As System.EventArgs) Handles cmbEspecifica.SelectedValueChanged
        If cmbEspecifica.SelectedIndex > 0 Then
            Dim tabEspecifica As List(Of SPEspecificaConsultarResult)
            tabEspecifica = db.SPEspecificaConsultar(CInt(cmbEspecifica.SelectedValue), String.Empty).ToList()

            txtVLEspecifica.Text = tabEspecifica(0).VLCurso - tabEspecifica(0).Desconto
        End If
    End Sub

    Private Sub cmbEspecifica_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles cmbEspecifica.Validating
        If cmbEspecifica.SelectedIndex > 0 Then
            Dim tabEspecifica As List(Of SPEspecificaConsultarResult)
            tabEspecifica = db.SPEspecificaConsultar(CInt(cmbEspecifica.SelectedValue), String.Empty).ToList()

            txtVLEspecifica.Text = tabEspecifica(0).VLCurso - tabEspecifica(0).Desconto
        End If
    End Sub

    Private Sub btnImprimeBoleto_Click(sender As System.Object, e As System.EventArgs) Handles btnImprimeBoleto.Click

        Try
            Dim ListAluno As List(Of SPDadosContratoResult)
            ListAluno = db.SPDadosContrato(txtCDAluno.Text).ToList()

            Dim ListPagamento As List(Of SPAlunoPagamentoConsultarResult)
            ListPagamento = db.SPAlunoPagamentoConsultar(txtCDAluno.Text, lstPagamento.SelectedItems.Item(0).SubItems(1).Text).ToList()

            Dim ListEspecifica As List(Of SPDadosContratoEspecificaResult)
            ListEspecifica = db.SPDadosContratoEspecifica(txtCDAluno.Text).ToList()

            Dim ListDadosPagamento As List(Of SPPagamentoConsultarResult)
            ListDadosPagamento = db.SPPagamentoConsultar(ListPagamento(0).IDPagamento, String.Empty).ToList()

            Dim ListDadosEspecifica As List(Of SPEspecificaConsultarResult)
            ListDadosEspecifica = db.SPEspecificaConsultar(ListDadosPagamento(0).IDEspecifica, String.Empty).ToList()

            Dim numeroDocumento As String
            Dim nossoNumero As String
            Dim moeda As String

            numeroDocumento = "9" + ListAluno(0).Matricula.Replace("/", "").Replace("-", "").PadLeft(12, "0")
            nossoNumero = numeroDocumento

            moeda = "R$"

            GeraBoletoSite(ListAluno, ListPagamento, ListEspecifica, ListDadosPagamento, ListDadosEspecifica, numeroDocumento, nossoNumero, moeda)
        Catch ex As Exception
            MsgBox(ex, MsgBoxStyle.Information, "Especifica")
        End Try

    End Sub

    Public Sub GeraBoletoSite(ListAluno As List(Of SPDadosContratoResult), ListPagamento As List(Of SPAlunoPagamentoConsultarResult), ListEspecifica As List(Of SPDadosContratoEspecificaResult), ListDadosPagamento As List(Of SPPagamentoConsultarResult), ListDadosEspecifica As List(Of SPEspecificaConsultarResult), numeroDocumento As String, nossoNumero As String, moeda As String)
        Try
            Dim txtVencimento As String = ListPagamento(0).DTParcela
            Dim txtValorBoleto As String = ListPagamento(0).VLParcela
            Dim txtNumeroDocumentoBoleto As String = numeroDocumento

            'Cedente
            Dim txtCodigoCedente As String = ListDadosPagamento(0).Cedente
            Dim txtNossoNumeroBoleto As String = nossoNumero
            Dim txtCPFCNPJ As String = ListDadosEspecifica(0).CNPJEmpresa
            Dim txtNomeCedente As String = ListDadosEspecifica(0).DEEmpresa
            Dim txtAgenciaCendente As String = ListDadosPagamento(0).Agencia
            Dim txtContaCedente As String = ListDadosPagamento(0).Conta
            Dim txtCarteira As String = ListDadosPagamento(0).Carteira
            Dim codBanco As Integer = ListDadosPagamento(0).CDBanco
            Dim txtInstrucao As String = ListDadosPagamento(0).Instrucao

            'Sacado
            Dim txtCPFCNPJSacado As String = ListAluno(0).CPF
            Dim txtNomeSacado As String = ListAluno(0).Nome1
            Dim txtEnderecoSacado As String = ListAluno(0).Endereco
            Dim txtBairroSacado As String = ListAluno(0).Bairro
            Dim txtCidadeSacado As String = ListAluno(0).Localidade
            Dim txtCEPSacado As String = ListAluno(0).CEP
            Dim txtUFSacado As String = ListAluno(0).UF

            '###############################################################################################

            Dim c = New Cedente(txtCPFCNPJ, txtNomeCedente, txtAgenciaCendente, txtContaCedente)

            c.Codigo = CInt(txtCodigoCedente)

            Dim b = New Boleto(CDate(txtVencimento), CDbl(txtValorBoleto), txtCarteira, txtNossoNumeroBoleto, c)

            b.NumeroDocumento = txtNumeroDocumentoBoleto

            b.Sacado = New Sacado(txtCPFCNPJSacado, txtNomeSacado)
            b.Sacado.Endereco.End = txtEnderecoSacado
            b.Sacado.Endereco.Bairro = txtBairroSacado
            b.Sacado.Endereco.Cidade = txtCidadeSacado
            b.Sacado.Endereco.CEP = txtCEPSacado
            b.Sacado.Endereco.UF = txtUFSacado

            Dim i As New Instrucao_Santander()
            i.Descricao = txtInstrucao
            b.Instrucoes.Add(i)

            b.EspecieDocumento = New EspecieDocumento_Santander(17)

            Dim bb As New BoletoBancario()
            bb.CodigoBanco = codBanco
            bb.Boleto = b
            bb.MostrarCodigoCarteira = True
            bb.Boleto.Valida()

            bb.MostrarComprovanteEntrega = False

            Dim ImpressaoBoleto As New FrmImpressaoBoleto

            Dim BotaoImp As String = "<table> <tr> <td> <a id='link' href='#' onclick='javascript:print();' style='font-size: 14px; font-weight: bold; font-family: Segoe WPC , Segoe UI ,Helvetica, Arial, Arial Unicode MS , Sans-Serif; text-align: center; text-decoration: none; padding: 8px 50px 8px 50px; margin: 0 5px 0 5px; color: black; text-decoration: underline; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); border-bottom: 1px solid rgba(0, 0, 0, 0.25); cursor: pointer;'> Imprimir Boleto</a> </td> </tr> </table>"

            ImpressaoBoleto.WebBrowser1.DocumentText = BotaoImp + bb.MontaHtml()
            ImpressaoBoleto.ShowDialog()
        Catch ex As Exception
            MsgBox(ex, MsgBoxStyle.Information, "Especifica")
            Exit Sub
        End Try
        

    End Sub
End Class